@devx-commerce/plugin-loyalty
Version:
A starter for Medusa plugins.
32 lines • 2.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.adminLoyaltyPointsRouteMiddlewares = exports.loyaltyPointsDTO = void 0;
const framework_1 = require("@medusajs/framework");
const zod_1 = require("zod");
// DTOs
exports.loyaltyPointsDTO = zod_1.z.object({
points: zod_1.z.number().int().gt(0, "Points must be a positive integer"),
type: zod_1.z.enum(["credit", "debit"], {
errorMap: () => ({
message: "Type must be either 'credit' or 'debit'",
}),
}),
reference_type: zod_1.z.enum(["order", "referral", "manual"]).default("manual"),
description: zod_1.z.string().optional(),
expiry_days: zod_1.z.number().optional(),
});
// Middleware routes
exports.adminLoyaltyPointsRouteMiddlewares = [
{
matcher: "/admin/loyalty-points/:customer_id",
method: "POST",
// middlewares: [createValidationMiddleware(loyaltyPointsDTO)],
middlewares: [(0, framework_1.validateAndTransformBody)(exports.loyaltyPointsDTO)],
},
{
matcher: "/admin/loyalty-points/:customer_id",
method: "GET",
middlewares: [],
},
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvYWRtaW4vbG95YWx0eS1wb2ludHMvW2lkXS9taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFnRjtBQUNoRiw2QkFBd0I7QUFvQnhCLE9BQU87QUFDTSxRQUFBLGdCQUFnQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDdkMsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLG1DQUFtQyxDQUFDO0lBQ25FLElBQUksRUFBRSxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQ2hDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ2YsT0FBTyxFQUFFLHlDQUF5QztTQUNuRCxDQUFDO0tBQ0gsQ0FBQztJQUNGLGNBQWMsRUFBRSxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDekUsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDbkMsQ0FBQyxDQUFDO0FBSUgsb0JBQW9CO0FBQ1AsUUFBQSxrQ0FBa0MsR0FBc0I7SUFDbkU7UUFDRSxPQUFPLEVBQUUsb0NBQW9DO1FBQzdDLE1BQU0sRUFBRSxNQUFNO1FBQ2QsK0RBQStEO1FBQy9ELFdBQVcsRUFBRSxDQUFDLElBQUEsb0NBQXdCLEVBQUMsd0JBQWdCLENBQUMsQ0FBQztLQUMxRDtJQUNEO1FBQ0UsT0FBTyxFQUFFLG9DQUFvQztRQUM3QyxNQUFNLEVBQUUsS0FBSztRQUNiLFdBQVcsRUFBRSxFQUFFO0tBQ2hCO0NBQ0YsQ0FBQyJ9